{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 4a. Calculate fugacity coefficients\n", "\n", "This allows you to calculate the fugacity coefficient for all vapor species in the CHOSX system at a given *P* and *T*.\n", "\n", "It can be run for multiple sets of conditions defined in the input data frame or loaded from a csv file." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Python set-up\n", "You need to install VolFe once on your machine, if you haven't yet. Then we need to import a few Python packages (including VolFe). " ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# Install VolFe on your machine. Don't remove the # from this line!\n", "# pip install VolFe # Remove the first # in this line if you have not installed VolFe on your machine before.\n", "\n", "# import python packages\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import VolFe as vf" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Conditions from dataframe\n", "\n", "### Define the inputs\n", "\n", "This first example is for a single set of conditions defined in a dataframe." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# Define conditions T as a dictionary.\n", "my_analysis = {'Sample':'test',\n", " 'T_C': 1200., # Temperature in 'C\n", " 'P_bar':1000.} # Pressure in bar\n", "\n", "# Turn the dictionary into a pandas dataframe, setting the index to 0.\n", "my_analysis = pd.DataFrame(my_analysis, index=[0])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll use the default options" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " option\n", "type \n", "COH_species yes_H2_CO_CH4_melt\n", "H2S_m True\n", "species X Ar\n", "Hspeciation none\n", "fO2 Kress91A\n", "... ...\n", "error 0.1\n", "print status False\n", "output csv True\n", "setup False\n", "high precision False\n", "\n", "[78 rows x 1 columns]\n" ] } ], "source": [ "# print default options in VolFe\n", "print(vf.default_models)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Run the calculation\n", "\n", "And this runs the calculation" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SampleP_barT_CyO2yH2yH2OyS2ySO2yH2SyCO2...y_H2S opty_H2 opty_O2 opty_S2 opty_CO opty_CH4 opty_H2O opty_OCS opty_X optDate
0test1000.01200.01.2098581.1261661.0042541.1913271.2064561.4899421.265765...Shi92_Hughes24Shaw64Shi92Shi92Shi92Shi92Holland91Shi92ideal2025-02-02 10:12:53.052359
\n", "

1 rows × 26 columns

\n", "
" ], "text/plain": [ "0 Sample P_bar T_C yO2 yH2 yH2O yS2 ySO2 \\\n", "0 test 1000.0 1200.0 1.209858 1.126166 1.004254 1.191327 1.206456 \n", "\n", "0 yH2S yCO2 ... y_H2S opt y_H2 opt y_O2 opt y_S2 opt \\\n", "0 1.489942 1.265765 ... Shi92_Hughes24 Shaw64 Shi92 Shi92 \n", "\n", "0 y_CO opt y_CH4 opt y_H2O opt y_OCS opt y_X opt Date \n", "0 Shi92 Shi92 Holland91 Shi92 ideal 2025-02-02 10:12:53.052359 \n", "\n", "[1 rows x 26 columns]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vf.calc_fugacity_coefficients(my_analysis)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Conditions from file\n", "\n", "### Import data\n", "\n", "We'll show an example by loading from the csv file found in files." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# Read csv to define melt composition\n", "my_analyses = pd.read_csv(\"../files/inputs_y.csv\") " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Run the calculation\n", "\n", "And below runs the calculation" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "results = vf.calc_fugacity_coefficients(my_analyses)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plotting\n", "\n", "And we can plot them - this is an example for CO2" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'y CO2')" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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wEftBUEoMMnrnTt3oKmpifr16xd7ViJVwoKciAAA7du3R3h4+EfLdXR0MGDAANy8eRMXLlzAmDFj0KtXL5iYmAAALC0tsXPnTty/fx8RERHw9vaWX7b2b548eYLnz5/DxcWlSPtCREREX6d9+/a4fPky8vPz5ct69eoFT09P9O7dG4sWLUJUVBSePn2KQ4cOwcXFBWfPnpW3vXDhAlq0aFHozwBE9DcW5EQEAPD29sbdu3cRExNTYHnt2rXRrVs3dOrUCe3atYONjQ3Wrl0rX79582a8ffsWjRs3Rr9+/TBmzBhUrly5UK+5Z88etGvXDhYWFkXaFyIiIvo6HTt2hIaGBk6dOiVfJpFI4Ofnh+XLlyMkJAStWrWCjY0N5syZA3d3d7Rv317e1t/fH8OGDRMjOpFSkwhfM1sDEam0SZMmIT09HevXry/218rJyYGlpSX8/Pzg7Oxc7K9HREREX7ZmzRqEhobi+PHjX7Xd0aNHMWHCBNy6datQP5Mjov+PZ8iJSG769OmwsLCATCYr9tdKSEjAr7/+ymKciIhIQQwfPhwtW7ZERkbGV22XlZWFrVu3shgn+g94hpyIiIiIiIhIBDxDTkRERERERCQCFuREREREREREImBBTkRERERERCQCFuREREREREREImBBTkRERERERCQCFuREREREREREImBBTkRERERERCQCFuREREREREREImBBTkRERERERCSC/weUPMYhNo20HQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12,4))\n", "\n", "data1 = results[results['P_bar'] == 2000.] # 2000 bar\n", "data2 = results[results['T_C'] == 1200.] # 1200 'C\n", "\n", "# Plotting results\n", "ax1.plot(data2['P_bar'], data2['yCO2'], '-k')\n", "ax2.plot(data1['T_C'], data1['yCO2'], '--k')\n", "\n", "ax1.set_xlabel('P (bar)')\n", "ax2.set_xlabel('T (C)')\n", "ax1.set_ylabel('y CO2')" ] } ], "metadata": { "kernelspec": { "display_name": "volfe-dev", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.0" } }, "nbformat": 4, "nbformat_minor": 2 }